草庐IT

python json转储

全部标签

linux - 截断的核心转储有什么用?

ulimit-c可用于设置RLIMIT_CORE,并限制进程可能生成的核心转储的最大大小。任何较大的核心转储都将被截断为此大小。这样一个截断的核心转储能做些什么有用的事情吗?也许在Linuxx86-64以外的平台上,或者使用GDB以外的调试器?如果不是,为什么POSIXspecifythisbehavior,而不是说,如果超过RLIMIT_CORE,则将核心转储截断为零字节? 最佳答案 Cananythingusefulbedonewithsuchatruncatedcoredump?是的,很多。截断的核心转储通常包含堆栈段,因此命

c++ - 如何从核心转储中获取系统时间?

我有一个在段错误后生成的核心转储。在发生这种情况时,gdb(或其他方式)有没有办法查看系统时间?我无法使用核心转储文件的创建时间,因为它是在没有元信息的情况下发送给我的。 最佳答案 默认情况下,系统时间(不幸的是)没有存储在核心文件中。你有几个选择。其中之一是更改核心文件的名称以包含系统时间。您可以阅读更多相关信息here.基本上,您希望在核心文件的名称中加入“%t”。如果您运行的是自定义内核,则您有更多选择。例如,您可以更改elf_prstatus结构以包含您可能需要的其他内容。这是一个并非没有痛苦的选择,因为现成的工具可能并不总

mysql - 如何将 sql.gz 文件转储到 mysql

我已经将生产服务器上的几乎所有空间都分配给了我的表空间现在我有一个大约20gb的压缩转储,需要将其转储到mysql问题是服务器没有太多空间来解压缩文件(这需要大约120GB)我已经使用了beolw命令,但我失败了,因为它首先解压缩文件,然后将输出重定向到mysqlgunzipdbdump.sql.gz|mysql-uroot-proot123-S/home/mysql55/tmp/mysql.sock有什么办法可以不解压就转储压缩文件任何建议都非常感谢 最佳答案 您应该告诉gunzip写入标准输出。您现在所做的根本不会通过管道传输任

linux - 如何确保我的 Linux 程序不会产生核心转储?

我有一个程序将安全敏感信息(例如私钥)保存在内存中,因为它会在程序的整个生命周期内使用它们。该程序的生产版本将RLIMIT_CORE设置为0,以尝试确保永远不会生成可能包含此敏感信息的核心转储。然而,虽然这在core(8)联机帮助页中未提及,但apportdocumentationontheUbuntuwikiclaim,Notethatevenifulimitissettodisabledcorefiles(byspecyfingacorefilesizeofzerousingulimit-c0),apportwillstillcapturethecrash.在我的进程中是否有一种方

linux - 来自 linux 核心转储的线程特定数据

在分析Linux的核心转储时,如何获取指向线程本地存储或线程特定数据的指针?我使用pthread_setspecific将一些数据存储在pthread的本地存储中。我在Linux上的多线程程序崩溃了,我想看看当前运行线程的本地存储中存储了什么。如果我得到指向线程本地存储的指针,我可以使用键来获取存储的数据。gdb中是否有命令获取指向线程本地存储的指针? 最佳答案 如果您正在调试实时程序,您可以:printpthread_getspecific(i)如果您有权访问线程的pthread_t,您可以:print((structpthrea

linux - 如何转储二进制文件的一部分

我有二进制文件,想提取其中的一部分,从已知字节串(即FFD8FFD0)开始,到已知字节串(AFFFD9)结束在过去,我使用dd从开头/结尾剪切部分二进制文件,但这个命令似乎不支持我的要求。终端上有什么工具可以做到这一点? 最佳答案 定位开始/结束位置,然后提取范围。$xxd-g0input.bin|grep-im1FFD8FFD0|awk-F:'{print$1}'0000cb0$^FFD8FFD0^AFFFD9^0009590$ddibs=1count=$((0x9590-0xcb0+1))skip=$((0xcb0))if=in

linux - 如何将 Oracle 中的数据库模式导出到转储文件

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭5年前。Improvethisquestion我在Linux机器上安装了Oracle服务器上的数据库模式。我需要在转储文件中导出架构相关信息。如何做到这一点?

c - 以编程方式打开核心/故障转储

我知道我能跑“ulimit-c无限制”在shell中为当前用户打开核心转储。我想知道如何从C中以编程方式执行此操作?我看到有一个ulimit调用,但它已被弃用,取而代之的是get/setrlimit。我想知道的是允许故障转储的对setrlimit的等效调用是什么生成? 最佳答案 我找到了可行的解决方案。现在正在创建核心文件。structrlimitcore_limit;core_limit.rlim_cur=RLIM_INFINITY;core_limit.rlim_max=RLIM_INFINITY;if(setrlimit(RL

linux - Linux 中的核心转储

我想在我的进程崩溃时创建一个核心转储。目前我正在遵循这种方法:使用gcc/g++的“-g”构建程序的特殊“调试”版本。执行“ulimit-cunlimited”现在,只要程序崩溃,我们就会得到核心转储。但我想尽量减少步骤数,以便:核心转储应该总是被创建。即使它是“发布”构建。不应要求用户手动执行命令“ulimit-cunlimited”。那个核心转储的回溯应该能够给出调用的文件、函数、行号。这是一种人类可读形式的堆栈跟踪。我不想使用“-g”将程序构建为调试版本。或者至少它不应该包含任何其他不需要生成人类可读堆栈跟踪的调试信息。因为这将是该程序的发布版本。所以我有两个问题:如何在程序的“

python - 如何从核心转储分析内存使用情况?

我在Linux下有一个核心转储。该进程继续进行内存分配,我至少需要找到它发生在哪个库中。您建议使用什么工具来全面了解内存的去向?我知道这个问题很难/完全无法解决。任何至少可以提供一些线索的工具都会有所帮助。[这是一个python进程,怀疑内存分配是由用C编写的自定义模块之一引起的] 最佳答案 尝试在启用调用图的python进程上运行linuxperf工具。如果它的多线程进程将所有关联的LWP作为参数。 关于python-如何从核心转储分析内存使用情况?,我们在StackOverflow上